/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

import Entidades.Prestamo;
import java.util.ArrayList;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author julian
 */

@Stateless
public class FachadaPrestamo {
    
     @PersistenceContext(unitName="ProyectosPU")
     private EntityManager em;
    
    /**
     * Metodo por el cual se guarda un prestamo en la base de datos
     * @param prestamo prestamo el cual va a ser guardado en la base de datos
     */
    public boolean crear(Prestamo prestamo)
    {
        em.persist(prestamo);
        return true;
    }
    
    /**
     * Metodo por el cual se actualiza un prestamo en la base de datos
     * @param prestamo prestamo con los datos nuevos para ser actualizado en la base de datos
     */
    public void actualizar (Prestamo prestamo)
    {
        em.merge(prestamo);
    }
    
    /**
     * Metodo por el cual se elimina un prestamo de la base de datos
     * @param prestamo prestamo el cual va a ser eliminado de la base de datos
     */
    public void eliminar (Prestamo prestamo)
    {
        em.remove(prestamo);
    }
    
    /**
     * Metodo el cual retorna una lista de todos los prestamos que hay en la base de datos
     * @return una lista con todos los prestamos que hay en la base de datos
     */
    public ArrayList<Prestamo> listar()
    {
        ArrayList<Prestamo> prestamos=new ArrayList();
        Query query = em.createQuery("select p from Prestamo p");
        for(Object o:query.getResultList()){
            prestamos.add((Prestamo)o);
        }
        return prestamos;
    }
    
    
}
